home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Navigation.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  16.1 KB  |  420 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Navigation.p
  3.  
  4.      Contains:    Navigation Services Interfaces
  5.  
  6.      Version:    Technology:    1.1
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1996-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Navigation;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __NAVIGATION__}
  27. {$SETC __NAVIGATION__ := 1}
  28.  
  29. {$I+}
  30. {$SETC NavigationIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __APPLEEVENTS__}
  37. {$I AppleEvents.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __TRANSLATION__}
  40. {$I Translation.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __MACWINDOWS__}
  43. {$I MacWindows.p}
  44. {$ENDC}
  45. {$IFC UNDEFINED __CODEFRAGMENTS__}
  46. {$I CodeFragments.p}
  47. {$ENDC}
  48.  
  49.  
  50.  
  51. {$PUSH}
  52. {$ALIGN MAC68K}
  53. {$LibExport+}
  54.  
  55.  
  56. CONST
  57.     kNavMissingKindStringErr    = -5699;
  58.     kNavInvalidCustomControlMessageErr = -5698;
  59.     kNavCustomControlMessageFailedErr = -5697;
  60.     kNavInvalidSystemConfigErr    = -5696;
  61.  
  62.  
  63.     kNavDialogOptionsVersion    = 0;
  64.     kNavReplyRecordVersion        = 0;
  65.     kNavCBRecVersion            = 0;
  66.     kNavFileOrFolderVersion        = 0;
  67.     kNavMenuItemSpecVersion        = 0;
  68.  
  69.  
  70. TYPE
  71.     NavDataVersion                        = UInt16;
  72.  
  73. CONST
  74.                                                                 {  input action codes for NavAskSaveChanges()  }
  75.     kNavSaveChangesClosingDocument = 1;
  76.     kNavSaveChangesQuittingApplication = 2;
  77.     kNavSaveChangesOther        = 0;
  78.  
  79.  
  80. TYPE
  81.     NavAskSaveChangesAction                = UInt32;
  82.  
  83. CONST
  84.                                                                 {  result codes for NavAskSaveChanges()  }
  85.     kNavAskSaveChangesSave        = 1;
  86.     kNavAskSaveChangesCancel    = 2;
  87.     kNavAskSaveChangesDontSave    = 3;
  88.  
  89.  
  90. TYPE
  91.     NavAskSaveChangesResult                = UInt32;
  92.  
  93. CONST
  94.                                                                 {  result codes for NavAskDiscardChanges()  }
  95.     kNavAskDiscardChanges        = 1;
  96.     kNavAskDiscardChangesCancel    = 2;
  97.  
  98.  
  99. TYPE
  100.     NavAskDiscardChangesResult            = UInt32;
  101.  
  102. CONST
  103.                                                                 {  which elements are being filtered for objects:  }
  104.     kNavFilteringBrowserList    = 0;
  105.     kNavFilteringFavorites        = 1;
  106.     kNavFilteringRecents        = 2;
  107.     kNavFilteringShortCutVolumes = 3;
  108.     kNavFilteringLocationPopup    = 4;                            {  for v1.1 or greater  }
  109.  
  110.  
  111. TYPE
  112.     NavFilterModes                        = INTEGER;
  113.     NavFileOrFolderInfoPtr = ^NavFileOrFolderInfo;
  114.     NavFileOrFolderInfo = RECORD
  115.         version:                UInt16;
  116.         isFolder:                BOOLEAN;
  117.         visible:                BOOLEAN;
  118.         creationDate:            UInt32;
  119.         modificationDate:        UInt32;
  120.         CASE INTEGER OF
  121.         0: (
  122.             locked:                BOOLEAN;                                {  file is locked  }
  123.             resourceOpen:        BOOLEAN;                                {  resource fork is opened  }
  124.             dataOpen:            BOOLEAN;                                {  data fork is opened  }
  125.             reserved1:            BOOLEAN;
  126.             dataSize:            UInt32;                                    {  size of the data fork  }
  127.             resourceSize:        UInt32;                                    {  size of the resource fork  }
  128.             finderInfo:            FInfo;                                    {  more file info:  }
  129.             finderXInfo:        FXInfo;
  130.            );
  131.         1: (
  132.             shareable:            BOOLEAN;
  133.             sharePoint:            BOOLEAN;
  134.             mounted:            BOOLEAN;
  135.             readable:            BOOLEAN;
  136.             writeable:            BOOLEAN;
  137.             reserved2:            BOOLEAN;
  138.             numberOfFiles:        UInt32;
  139.             finderDInfo:        DInfo;
  140.             finderDXInfo:        DXInfo;
  141.             reserved3:            PACKED ARRAY [0..213] OF CHAR;
  142.            );
  143.     END;
  144.  
  145.     NavEventDataInfoPtr = ^NavEventDataInfo;
  146.     NavEventDataInfo = RECORD
  147.         CASE INTEGER OF
  148.         0: (
  149.             event:                EventRecordPtr;                            {  for event processing  }
  150.             );
  151.         1: (
  152.             param:                Ptr;                                    {  points to event specific data  }
  153.             );
  154.     END;
  155.  
  156.     NavEventDataPtr = ^NavEventData;
  157.     NavEventData = RECORD
  158.         eventDataParms:            NavEventDataInfo;                        {  the event data  }
  159.         itemHit:                SInt16;                                    {  the dialog item number, for v1.1 or greater  }
  160.     END;
  161.  
  162.     NavContext                            = UInt32;
  163.     NavCBRecPtr = ^NavCBRec;
  164.     NavCBRec = RECORD
  165.         version:                UInt16;
  166.         context:                NavContext;                                {  used by customization code to call Navigation Services  }
  167.         window:                    WindowPtr;                                {  the dialog  }
  168.         customRect:                Rect;                                    {  local coordinate rectangle of customization area  }
  169.         previewRect:            Rect;                                    {  local coordinate rectangle of the preview area  }
  170.         eventData:                NavEventData;
  171.         reserved:                PACKED ARRAY [0..221] OF CHAR;
  172.     END;
  173.  
  174.  
  175. CONST
  176.     kNavCBEvent                    = 0;                            {  an event has occurred (update, idle events, etc.)  }
  177.     kNavCBCustomize                = 1;                            {  protocol for negotiating customization space  }
  178.     kNavCBStart                    = 2;                            {  the navigation dialog is starting up  }
  179.     kNavCBTerminate                = 3;                            {  the navigation dialog is closing down  }
  180.     kNavCBAdjustRect            = 4;                            {  the navigation dialog is being resized  }
  181.     kNavCBNewLocation            = 5;                            {  user has chosen a new location in the browser  }
  182.     kNavCBShowDesktop            = 6;                            {  user has navigated to the desktop  }
  183.     kNavCBSelectEntry            = 7;                            {  user has made a selection in the browser  }
  184.     kNavCBPopupMenuSelect        = 8;                            {  signifies that a popup menu selection was made  }
  185.     kNavCBAccept                = 9;                            {  user has accepted the navigation dialog  }
  186.     kNavCBCancel                = 10;                            {  user has cancelled the navigation dialog  }
  187.     kNavCBAdjustPreview            = 11;                            {  preview button was clicked or the preview was resized  }
  188.  
  189.  
  190. TYPE
  191.     NavEventCallbackMessage                = SInt32;
  192.     NavCallBackUserData                    = Ptr;
  193. { for events and customization: }
  194. {$IFC TYPED_FUNCTION_POINTERS}
  195.     NavEventProcPtr = PROCEDURE(callBackSelector: NavEventCallbackMessage; callBackParms: NavCBRecPtr; callBackUD: UNIV Ptr);
  196. {$ELSEC}
  197.     NavEventProcPtr = ProcPtr;
  198. {$ENDC}
  199.  
  200. { for preview support: }
  201. {$IFC TYPED_FUNCTION_POINTERS}
  202.     NavPreviewProcPtr = FUNCTION(callBackParms: NavCBRecPtr; callBackUD: UNIV Ptr): BOOLEAN;
  203. {$ELSEC}
  204.     NavPreviewProcPtr = ProcPtr;
  205. {$ENDC}
  206.  
  207. { filtering callback information: }
  208. {$IFC TYPED_FUNCTION_POINTERS}
  209.     NavObjectFilterProcPtr = FUNCTION(VAR theItem: AEDesc; info: UNIV Ptr; callBackUD: UNIV Ptr; filterMode: NavFilterModes): BOOLEAN;
  210. {$ELSEC}
  211.     NavObjectFilterProcPtr = ProcPtr;
  212. {$ENDC}
  213.  
  214.     NavEventUPP = UniversalProcPtr;
  215.     NavPreviewUPP = UniversalProcPtr;
  216.     NavObjectFilterUPP = UniversalProcPtr;
  217.  
  218. CONST
  219.     uppNavEventProcInfo = $00000FC0;
  220.     uppNavPreviewProcInfo = $000003D0;
  221.     uppNavObjectFilterProcInfo = $00002FD0;
  222.  
  223. FUNCTION NewNavEventProc(userRoutine: NavEventProcPtr): NavEventUPP;
  224.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  225.     INLINE $2E9F;
  226.     {$ENDC}
  227.  
  228. FUNCTION NewNavPreviewProc(userRoutine: NavPreviewProcPtr): NavPreviewUPP;
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $2E9F;
  231.     {$ENDC}
  232.  
  233. FUNCTION NewNavObjectFilterProc(userRoutine: NavObjectFilterProcPtr): NavObjectFilterUPP;
  234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  235.     INLINE $2E9F;
  236.     {$ENDC}
  237.  
  238. PROCEDURE CallNavEventProc(callBackSelector: NavEventCallbackMessage; callBackParms: NavCBRecPtr; callBackUD: UNIV Ptr; userRoutine: NavEventUPP);
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $205F, $4E90;
  241.     {$ENDC}
  242.  
  243. FUNCTION CallNavPreviewProc(callBackParms: NavCBRecPtr; callBackUD: UNIV Ptr; userRoutine: NavPreviewUPP): BOOLEAN;
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $205F, $4E90;
  246.     {$ENDC}
  247.  
  248. FUNCTION CallNavObjectFilterProc(VAR theItem: AEDesc; info: UNIV Ptr; callBackUD: UNIV Ptr; filterMode: NavFilterModes; userRoutine: NavObjectFilterUPP): BOOLEAN;
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $205F, $4E90;
  251.     {$ENDC}
  252.  
  253. CONST
  254.     kNavCtlShowDesktop            = 0;                            {     show desktop,                 parms = nil  }
  255.     kNavCtlSortBy                = 1;                            {     sort key field,             parms->NavSortKeyField  }
  256.     kNavCtlSortOrder            = 2;                            {     sort order,                    parms->NavSortOrder  }
  257.     kNavCtlScrollHome            = 3;                            {     scroll list home,            parms = nil  }
  258.     kNavCtlScrollEnd            = 4;                            {     scroll list end,            parms = nil  }
  259.     kNavCtlPageUp                = 5;                            {     page list up,                parms = nil  }
  260.     kNavCtlPageDown                = 6;                            {     page list down,                parms = nil  }
  261.     kNavCtlGetLocation            = 7;                            {     get current location,        parms<-AEDesc  }
  262.     kNavCtlSetLocation            = 8;                            {     set current location,        parms->AEDesc  }
  263.     kNavCtlGetSelection            = 9;                            {     get current selection,        parms<-AEDescList  }
  264.     kNavCtlSetSelection            = 10;                            {     set current selection,        parms->AEDescList  }
  265.     kNavCtlShowSelection        = 11;                            {     make selection visible,        parms = nil  }
  266.     kNavCtlOpenSelection        = 12;                            {     open view of selection,        parms = nil  }
  267.     kNavCtlEjectVolume            = 13;                            {     eject volume,                parms->vRefNum  }
  268.     kNavCtlNewFolder            = 14;                            {     create a new folder,        parms->StringPtr  }
  269.     kNavCtlCancel                = 15;                            {     cancel dialog,                parms = nil  }
  270.     kNavCtlAccept                = 16;                            {     accept dialog default,        parms = nil  }
  271.     kNavCtlIsPreviewShowing        = 17;                            {     query preview status,        parms<-Boolean  }
  272.     kNavCtlAddControl            = 18;                            {   add one control to dialog,    parms->ControlHandle  }
  273.     kNavCtlAddControlList        = 19;                            {     add control list to dialog,    parms->Handle (DITL rsrc)  }
  274.     kNavCtlGetFirstControlID    = 20;                            {     get 1st control ID,            parms<-UInt16  }
  275.     kNavCtlSelectCustomType        = 21;                            {     select a custom menu item    parms->NavMenuItemSpec  }
  276.     kNavCtlSelectAllType        = 22;                            {   select an "All" menu item    parms->SInt16  }
  277.     kNavCtlGetEditFileName        = 23;                            {     get save dlog's file name    parms<-StringPtr  }
  278.     kNavCtlSetEditFileName        = 24;                            {     set save dlog's file name    parms->StringPtr  }
  279.     kNavCtlSelectEditFileName    = 25;                            {     select save dlog file name    parms->ControlEditTextSelectionRec, for v1.1 or greater  }
  280.  
  281.  
  282. TYPE
  283.     NavCustomControlMessage                = SInt32;
  284.  
  285. CONST
  286.     kNavAllKnownFiles            = 0;
  287.     kNavAllReadableFiles        = 1;
  288.     kNavAllFiles                = 2;
  289.  
  290.  
  291. TYPE
  292.     NavPopupMenuItem                    = UInt16;
  293.  
  294. CONST
  295.     kNavSortNameField            = 0;
  296.     kNavSortDateField            = 1;
  297.  
  298.  
  299. TYPE
  300.     NavSortKeyField                        = UInt16;
  301.  
  302. CONST
  303.     kNavSortAscending            = 0;
  304.     kNavSortDescending            = 1;
  305.  
  306.  
  307. TYPE
  308.     NavSortOrder                        = UInt16;
  309.  
  310. CONST
  311.     kNavDefaultNavDlogOptions    = $000000E4;                    {  use defaults for all the options  }
  312.     kNavNoTypePopup                = $00000001;                    {  don't show file type/extension popup on Open/Save  }
  313.     kNavDontAutoTranslate        = $00000002;                    {  don't automatically translate on Open  }
  314.     kNavDontAddTranslateItems    = $00000004;                    {  don't add translation choices on Open/Save  }
  315.     kNavAllFilesInPopup            = $00000010;                    {  "All Files" menu item in the type popup on Open  }
  316.     kNavAllowStationery            = $00000020;                    {  allow saving of stationery files  }
  317.     kNavAllowPreviews            = $00000040;                    {  allow to show previews  }
  318.     kNavAllowMultipleFiles        = $00000080;                    {  allow multiple items to be selected  }
  319.     kNavAllowInvisibleFiles        = $00000100;                    {  allow invisible items to be shown  }
  320.     kNavDontResolveAliases        = $00000200;                    {  don't resolve aliases  }
  321.     kNavSelectDefaultLocation    = $00000400;                    {  make the default location the browser selection  }
  322.     kNavSelectAllReadableItem    = $00000800;                    {  make the dialog select "All Readable Documents" on Open  }
  323.  
  324.  
  325. TYPE
  326.     NavDialogOptionFlags                = UInt32;
  327.  
  328. CONST
  329.     kNavTranslateInPlace        = 0;                            {     translate in place, replacing translation source file (default for Save)  }
  330.     kNavTranslateCopy            = 1;                            {     translate to a copy of the source file (default for Open)  }
  331.  
  332.  
  333. TYPE
  334.     NavTranslationOptions                = UInt32;
  335.     NavMenuItemSpecPtr = ^NavMenuItemSpec;
  336.     NavMenuItemSpec = RECORD
  337.         version:                UInt16;
  338.         menuCreator:            OSType;
  339.         menuType:                OSType;
  340.         menuItemName:            Str255;
  341.         reserved:                PACKED ARRAY [0..244] OF CHAR;
  342.     END;
  343.  
  344.     NavMenuItemSpecArray                = ARRAY [0..0] OF NavMenuItemSpec;
  345.     NavMenuItemSpecArrayPtr                = ^NavMenuItemSpecArray;
  346.     NavMenuItemSpecArrayHandle            = ^NavMenuItemSpecArrayPtr;
  347.     NavMenuItemSpecHandle                = NavMenuItemSpecArrayHandle;
  348.     NavTypeListPtr = ^NavTypeList;
  349.     NavTypeList = RECORD
  350.         componentSignature:        OSType;
  351.         reserved:                INTEGER;
  352.         osTypeCount:            INTEGER;
  353.         osType:                    ARRAY [0..0] OF OSType;
  354.     END;
  355.  
  356.     NavTypeListHandle                    = ^NavTypeListPtr;
  357.     NavDialogOptionsPtr = ^NavDialogOptions;
  358.     NavDialogOptions = RECORD
  359.         version:                UInt16;
  360.         dialogOptionFlags:        NavDialogOptionFlags;                    {  option flags for affecting the dialog's behavior  }
  361.         location:                Point;                                    {  top-left location of the dialog, or (-1,-1) for default position  }
  362.         clientName:                Str255;
  363.         windowTitle:            Str255;
  364.         actionButtonLabel:        Str255;                                    {  label of the default button (or null string for default)  }
  365.         cancelButtonLabel:        Str255;                                    {  label of the cancel button (or null string for default)  }
  366.         savedFileName:            Str255;                                    {  default name for text box in NavPutFile (or null string for default)  }
  367.         message:                Str255;                                    {  custom message prompt (or null string for default)  }
  368.         preferenceKey:            UInt32;                                    {  a key for to managing preferences for using multiple utility dialogs  }
  369.         popupExtension:            NavMenuItemSpecArrayHandle;                {  extended popup menu items, an array of NavMenuItemSpecs  }
  370.         reserved:                PACKED ARRAY [0..493] OF CHAR;
  371.     END;
  372.  
  373. { data returned by the utility dialogs: }
  374.     NavReplyRecordPtr = ^NavReplyRecord;
  375.     NavReplyRecord = RECORD
  376.         version:                UInt16;
  377.         validRecord:            BOOLEAN;                                {  open/save: true if the user confirmed a selection, false on cancel  }
  378.         replacing:                BOOLEAN;                                {  save: true if the user is overwriting an existing object for save  }
  379.         isStationery:            BOOLEAN;                                {  save: true if the user wants to save an object as stationery  }
  380.         translationNeeded:        BOOLEAN;                                {  save: translation is 'needed', open: translation 'has taken place'  }
  381.         selection:                AEDescList;                                {  open/save: list of AppleEvent descriptors of the chosen object(s)  }
  382.         keyScript:                ScriptCode;                                {  open/save: script in which the name of each item in 'selection' is to be displayed  }
  383.         fileTranslation:        FileTranslationSpecArrayHandle;            {  open/save: list of file translation specs of the chosen object(s), if translation is needed  }
  384.         reserved1:                UInt32;
  385.         reserved:                PACKED ARRAY [0..230] OF CHAR;
  386.     END;
  387.  
  388. FUNCTION NavLoad: OSErr;
  389. FUNCTION NavUnload: OSErr;
  390. FUNCTION NavLibraryVersion: UInt32;
  391. FUNCTION NavGetDefaultDialogOptions(VAR dialogOptions: NavDialogOptions): OSErr;
  392.  
  393. FUNCTION NavGetFile(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; previewProc: NavPreviewUPP; filterProc: NavObjectFilterUPP; typeList: NavTypeListHandle; callBackUD: UNIV Ptr): OSErr;
  394. FUNCTION NavPutFile(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; fileType: OSType; fileCreator: OSType; callBackUD: UNIV Ptr): OSErr;
  395. FUNCTION NavAskSaveChanges(VAR dialogOptions: NavDialogOptions; action: NavAskSaveChangesAction; VAR reply: NavAskSaveChangesResult; eventProc: NavEventUPP; callBackUD: UNIV Ptr): OSErr;
  396. FUNCTION NavCustomAskSaveChanges(VAR dialogOptions: NavDialogOptions; VAR reply: NavAskSaveChangesResult; eventProc: NavEventUPP; callBackUD: UNIV Ptr): OSErr;
  397. FUNCTION NavAskDiscardChanges(VAR dialogOptions: NavDialogOptions; VAR reply: NavAskDiscardChangesResult; eventProc: NavEventUPP; callBackUD: UNIV Ptr): OSErr;
  398. FUNCTION NavChooseFile(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; previewProc: NavPreviewUPP; filterProc: NavObjectFilterUPP; typeList: NavTypeListHandle; callBackUD: UNIV Ptr): OSErr;
  399. FUNCTION NavChooseFolder(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; filterProc: NavObjectFilterUPP; callBackUD: UNIV Ptr): OSErr;
  400. FUNCTION NavChooseVolume(defaultSelection: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; filterProc: NavObjectFilterUPP; callBackUD: UNIV Ptr): OSErr;
  401. FUNCTION NavChooseObject(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; filterProc: NavObjectFilterUPP; callBackUD: UNIV Ptr): OSErr;
  402. FUNCTION NavNewFolder(defaultLocation: AEDescPtr; VAR reply: NavReplyRecord; VAR dialogOptions: NavDialogOptions; eventProc: NavEventUPP; callBackUD: UNIV Ptr): OSErr;
  403. FUNCTION NavTranslateFile(VAR reply: NavReplyRecord; howToTranslate: NavTranslationOptions): OSErr;
  404. FUNCTION NavCompleteSave(VAR reply: NavReplyRecord; howToTranslate: NavTranslationOptions): OSErr;
  405. FUNCTION NavCustomControl(context: NavContext; selector: NavCustomControlMessage; parms: UNIV Ptr): OSErr;
  406. FUNCTION NavDisposeReply(VAR reply: NavReplyRecord): OSErr;
  407. FUNCTION NavServicesCanRun: BOOLEAN;
  408.  
  409. FUNCTION NavServicesAvailable: BOOLEAN;
  410. {$ALIGN RESET}
  411. {$POP}
  412.  
  413. {$SETC UsingIncludes := NavigationIncludes}
  414.  
  415. {$ENDC} {__NAVIGATION__}
  416.  
  417. {$IFC NOT UsingIncludes}
  418.  END.
  419. {$ENDC}
  420.